﻿using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;


namespace DiscoveryLogic.DataServices.DataSources
{
    public class Investment
    {
        private InvestmentType type = InvestmentType.Stock;
        private AccountType accountType = AccountType.Investments;
        private string symbol = string.Empty;
        private string description = string.Empty;
        private double units = 0;
        private double mostRecentPrice = 0;
        private double mostRecentValue = 0;
        private double costBasis =0;
        private double changeDollars =0;
        private double changePercent =0;
        private AssetAllocation assetAllocationType =AssetAllocation.Other;
        private Industry industryType = Industry.Software;
        private EquityStyle equityStyleType = EquityStyle.SmallValue;
        private InvestmentChangeHistory history = null;

        public Investment()
        {
        }

        public Investment(
             InvestmentType type,
         AccountType accountType,
         string symbol,
         string description,
         double units,
         double mostRecentPrice,
         double mostRecentValue,
         double costBasis,
         double changeDollars,
         double changePercent,
         AssetAllocation assetAllocationType,
         Industry industryType,
         EquityStyle equityStyleType,
            InvestmentChangeHistory history
            )
        {
            this.type = type;
            this.accountType = accountType;
            this.symbol = symbol;
            this.description = description;
            this.units = units;
            this.mostRecentPrice = mostRecentPrice;
            this.mostRecentValue = mostRecentValue;
            this.costBasis = costBasis;
            this.changeDollars = changeDollars;
            this.changePercent = changePercent;
            this.assetAllocationType = assetAllocationType;
            this.industryType = industryType;
            this.equityStyleType = equityStyleType;
            this.history = history;
        }

        public InvestmentType Type
        {
            get { return type; }
            set { type = value; }
        }

        public AccountType AccountType
        {
            get { return accountType; }
            set { accountType = value; }
        }

        public string Symbol
        {
            get { return symbol; }
            set { symbol = value; }
        }

        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        public double Units
        {
            get { return units; }
            set { units = value; }
        }

        public double MostRecentPrice
        {
            get { return mostRecentPrice; }
            set { mostRecentPrice = value; }
        }

        public double MostRecentValue
        {
            get { return mostRecentValue; }
            set { mostRecentValue = value; }
        }

        public double CostBasis
        {
            get { return costBasis; }
            set { costBasis = value; }
        }

        public double ChangeDollars
        {
            get { return changeDollars; }
            set { changeDollars = value; }
        }

        public double ChangePercent
        {
            get { return changePercent; }
            set { changePercent = value; }
        }

        public AssetAllocation AssetAllocationType
        {
            get { return assetAllocationType; }
            set { assetAllocationType = value; }
        }

        public Industry IndustryType
        {
            get { return industryType; }
            set { industryType = value; }
        }

        public EquityStyle EquityStyleType
        {
            get { return equityStyleType; }
            set { equityStyleType = value; }
        }

        public InvestmentChangeHistory History
        {
            get { return history; }
            set { history = value; }
        }


    }
}
